﻿using Mes.Domain.BoundedContext;
using Mes.Application.DTO.Inputs.MasterData;
using Mes.Application.DTO.Results.MasterData;

namespace Mes.Application.Services.MasterData
{
    public interface IMaterialService
    {
        /// <summary>
        /// 新增物料
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task AddMaterialAsync(AddMaterialInput input);

        /// <summary>
        /// 编辑物料
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task UpdateMaterialAsync(UpdateMaterialInput input);

        /// <summary>
        /// 删除物料
        /// </summary>
        /// <param name="ids"></param>
        /// <returns></returns>
        Task DeleteMaterialsAsync(IList<int> ids);

        /// <summary>
        /// 分页查询物料
        /// </summary>
        /// <param name="input"></param>
        /// <returns>PagedItemsData<MaterialsResults></returns>
        Task<PagedItemsData<MaterialsResults>> GetMaterialsAsync(GetMaterialsInput input);

        /// <summary>
        /// 查询指定物料
        /// </summary>
        /// <param name="id"></param>
        /// <returns>MaterialResults</returns>
        Task<MaterialResults> GetMaterialAsync(int id);
    }
}
